In recent years the use of LiDAR and laser scanning devices has become much more common, and the volume of data acquired by these devices has dramatically increased. In this regard, these scanning devices typically produce point cloud data that represents the three-dimensional (3D) surfaces and/or objects that have been scanned. A point cloud typically includes a massive data set that defines a large number of data points in some coordinate system. For example, a laser scan of a physical object will typically produce a data set that contains millions of data points, each specified by a 3-tuple using orthogonal coordinates that represent 3D space (e.g. x, y, z).
The processing, analysis and reporting of such large point cloud data sets can be difficult. In particular, it is often the case that the size of a point cloud data set exceeds the design and performance capabilities of the systems that need to make use of this data. Consequently, methods for reducing the size of point cloud data sets are an important pre-processing step in order to reduce the volume of data to a level suitable for consuming systems. The simplified/reduced point cloud data can then be more efficiently processed. In particular, simplifying point cloud data reduces the bandwidth required to transmit the point cloud data set across a network, reduces the amount of memory/storage space required to store the data set, and reduces the time required to process the data set (e.g. when being used in some form of practical application).
There are a number of related art approaches for simplifying point cloud data. However, these related art approaches either carry a significant risk of losing key features of the objects and/or surfaces represented by the data (e.g. sub-sampling decimation, uniform spatial clustering) or are complex to implement and therefore incur significantly more computational expense, requiring greater processing power/time (e.g. k-neighbours plane reconstruction).